In microcoded data processors, each macroinstruction is typically decoded to develop the microaddress of the first microinstruction in the particular sequence of microinstructions appropriate for executing that instruction. Once microinstruction execution begins, control of the next microaddress is carefully maintained by each subsequent microinstruction in the microsequence. For example, each microinstruction may explicitly define the next microaddress. Alternatively, the microinstruction may simply enable another component to provide the next microaddress. In some processors, the microinstruction may enable branch control logic to develop the microaddress based upon the results of some operation in the arithmetic and logic unit (ALU) or other logic. While some processors allow the user to construct microinstructions so as to selectively employ one or more optional microsequences, no known processor allows the user to directly specify the microaddress used to access the microcode.